运行环境配置

Version 1.0


1. sensor配置

用户可以自由搭配不同的摄像头型号,因此用户需指定每个摄像头的“型号+连接位置+data lane条数”。“型号”决定了驱动,“连接位置”通过chmap参数传给sensor驱动,data lane条数通过lane_num参数传给sensor驱动。以“imx415+imx307”为例,加载sensor驱动的方式如下:

# Sensor pad0,对应chmap=1
insmod /config/modules/4.9.84/imx415_MIPI.ko chmap=1 lane_num=4
# Sensor pad1,对应chmap=2
insmod /config/modules/4.9.84/imx307_MIPI.ko chmap=2 lane_num=4

实际硬件连接决定了sensor pad,对应的chmap值为pad指定二进制位对应的十进制值,即chmap = 0x1 << pad。在打包前根据实际的sensor搭配,修改project/configs/defconfigs/dispcam_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2.demo_defconfig文件的以下参数后重新make dispcam_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2.demo_defconfig再编译image,烧写到板子上后可以在/customer/demo.sh启动脚本中看到有两条insmod加载驱动的命令。

#
# Sensor
#
CONFIG_IQ0="imx307/imx307_iqfile.bin"
CONFIG_IQ1="imx307/imx307_iqfile.bin"
CONFIG_IQ2="imx307/imx307_iqfile.bin"
CONFIG_IQ3="imx307/imx307_iqfile.bin"
# 打包到image中的sensor驱动列表
CONFIG_SENSOR_LIST="imx323.ko imx415_MIPI.ko imx307_MIPI.ko imx307_dual_MIPI.ko nvp6158c.ko dh9931.ko"
# sensor 0型号,选择sensor list中的一个
CONFIG_SENSOR0="imx415_MIPI.ko"
# sensor 0 option
CONFIG_SENSOR0_OPT="chmap=1 lane_num=4"
# sensor 1型号,选择sensor list中的一个
CONFIG_SENSOR1="imx307_MIPI.ko"
# sensor 1 option
CONFIG_SENSOR1_OPT="chmap=2 lane_num=4"
CONFIG_SENSOR2=""
CONFIG_SENSOR2_OPT=""

或是直接使用make menuconfig以编辑,如下:

pic

可以根据实际情况增加或省略上面的CONFIG_SENSOR0CONFIG_SENSOR1CONFIG_SENSOR2


2. Panel配置

SSD26x支持ttl、mipi等接口的屏,这里只介绍ttl时序配置部分;部分屏还需要通过spi总线配置参数,这部分将在app中完成。要能正常点亮lcd屏需要板子上存在/config/config.ini这个屏参文件,且指定的屏及时序参数正确。

  • 修改board/m6/$BOARD_NAME/config/config.ini文件,在最开头的m_pnlList中指定当前使用的屏,如demo板使用的7寸屏:
m_pnlList = {\
    SAT070AT50H18BH,\
}
  • 根据屏的datasheet在适当的位置增加一套屏参,可以复制demo板使用的7寸屏的参数进行修改,如下:
[SAT070AT50H18BH]
m_wPanelDispPath = 1;
m_pPanelName = "SAT070AT50H18BH_1024x600";
m_bPanelDither = 0;
m_ePanelIntfType = 0; #0:ttl 1:lvds 11:mipi 12:bt656

m_bPanelInvDCLK = 0;
m_bPanelInvDE = 0;
m_bPanelInvHSync = 0;
m_bPanelInvVSync = 0;

m_wPanelHSyncWidth = 48;
m_wPanelHSyncBackPorch = 46;
m_wPanelVSyncWidth = 4;
m_wPanelVBackPorch = 23;
m_wPanelHStart = 98;
m_wPanelVStart = 27;
m_wPanelWidth = 1024;
m_wPanelHeight = 600;

m_wPanelHTotal = 1344;
m_wPanelVTotal = 635;
m_wPanelDCLK = 51;

m_wSpreadSpectrumFreq = 0;
m_wSpreadSpectrumRatio = 0;

m_eOutputFormatBitMode = 2; #0:10bit 1:6bit 2:8bit 3:565bit

m_ucPanelSwapChnR = 3;
m_ucPanelSwapChnG = 2;
m_ucPanelSwapChnB = 1;
m_ucPanelSwapRgbML = 0;

3. FB配置

使用fb之前需先配置好fb的分辨率、数据格式等参数。系统默认将从/config/fbdev.ini文件中读取这些参数,用户可以通过编辑project/board/m6/$BOARD_NAME/config文件来指定需要的配置,如黑色SSD268G开发板fbdev.ini文件的存放位置为board/m6/SSC016A-S01A/config/fbdev.ini

[FB_DEVICE]
FB_HWLAYER_ID = 3
FB_HWWIN_ID = 0
FB_HWLAYER_DST = 3
FB_HWWIN_FORMAT = 5
FB_HWLAYER_OUTPUTCOLOR = 1
FB_WIDTH = 800
FB_HEIGHT = 480
FB_TIMMING_WIDTH = 1920
FB_TIMMING_HEIGHT = 1080
FB_MMAP_NAME = E_MMAP_ID_FB
FB_BUFFER_LEN = 8192
#unit:Kbyte,4096=4M, fbdev.ko alloc size = FB_BUFFER_LEN*1024

[FB_CURSOR]
FB_HWLAYER_ID = 0
FB_HWWIN_ID = 0
FB_HWLAYER_DST = 3
FB_HWWIN_FORMAT = 6
FB_HWLAYER_OUTPUTCOLOR = 1
FB_MMAP_NAME = E_MMAP_ID_HW_CURSOR

[LAYER_ZORDER]
LAYER_ZORDER0 = 0
LAYER_ZORDER1 = 1
LAYER_ZORDER2 = 2
LAYER_ZORDER3 = 3
LAYER_ZORDER4 = 4

一般情况下用户需要根据实际使用的显示口修改FB_HWLAYER_ID、FB_HWWIN_ID、FB_WIDTH、FB_HEIGHT、FB_TIMMING_WIDTH、FB_TIMMING_HEIGHT等参数。并根据配置的参数初始化好相应的disp口(详见应用开发说明)即可正常使用fb。


4. 默认驱动配置

用户要增删默认加载的驱动时可以编辑project/kbuild/customize/4.9.227/m6/dispcam/spinand/kernel_mod_list文件,按照一行一个的原则增删所需要的驱动,带参数的话直接写到驱动的末尾。如:g_webcam.ko streaming_maxpacket=3072 streaming_maxburst=13 uac_function_enable=0


5. Rootfs配置

rootfs的生成规则位于project/image/configs/m6/rootfs.mk文件中,用户根据实际需要修改即可。


6. 分区配置

分区配置文件存放于project/image/configs/i6e文件夹下,默认使用的配置如下:

flash config
spi nand spinand.squashfs.partition.config
spi nor nor.squashfs.partition.config

需要变更分区配置的话主要关注开头的IMAGE_LIST及后面每个分区的PATSIZE等信息,详见系统分区